perm filename NOTICE[UP,DOC]5 blob sn#016253 filedate 1972-12-12 generic text, type T, neo UTF8
00100	*25 Feb 1972	NOTICEs	LES
00200	
00300	This file, kept in  NOTICE[UP,DOC],  is intended  to  function  as  a
00400	computerized  bulletin  board.     System  programmers  and CUSP file
00500	contributors are invited to disseminate  information  concerning  new
00600	programs  and  system  features  by adding notices to this file.  The
00700	format is arbitrary, except that the first line (and only the first
00800	line) should begin with a "*" and should contain three fields in the
00900	form
01000	 *<date><TAB><subject><TAB><programmer initials>
01100	In the date field, the year, month and day may be given in any order
01200	and the year may be abbreviated to 2 digits, but the month must be
01300	given as 3 or more letters.
01400	
01500	*23 Apr 1972	NEWS	LES
01600	To get selective listings from the NOTICE file, say "R  NEWS",  which
01700	will respond with an asterisk and expect a query such as
01800	 *March 15
01900	This asks for all notices posted since the ides of March. If the  day
02000	is  omitted,  1  is  assumed;  if  the  month  is omitted, January is
02100	assumed; if the year is omitted  (as  above)  the  last  instance  is
02200	assumed.
02300	
02400	 *Nov<TAB>SAIL
02500	is an example of a more general kind if query.   This  asks  for  all
02600	notices  since  last  November  1  that  contain  the  string  "SAIL"
02700	somewhere in the subject field, with any  case  differences  ignored.
02800	The search could be made more specific by saying
02900	 *NOV<TAB>SAIL<TAB>DCS
03000	which delivers only such notices written by Dan Swinehart.
03100	
03200	If  the  query begins with a <TAB>, so that the date is omitted, then
03300	all dates will be accepted.   Similarly, the  Subject  field  may  be
03400	omitted. A null query outputs the entire NOTICE file.
03500	
03600	If you would like the output to be spooled, type "*" at the end of your
03700	query, e. g.
03800	 *July 4, 1776	Sex*
03900	If you forget all this, type "?<return>" and this notice will  appear
04000	magically.
04100	
04200	*1 JAN 1972	DO	RPH
04300	Manual is in DO.RPH[S,DOC].
04400	
04500	*1 JAN 1972	DMAN	REG
04600	Dectape manager (PDP-10 format) -- see DMAN.REG[S,DOC].
04700	
04800	*1 JAN 1972	SPOOLER	REG
04900	See SPOOL.DOC[S,DOC].
05000	
05100	*1 JAN 1972	RSL SL WHAMS BAMS ETC	JHS
05200	Service Level Reservation System -- see RSL[S,DOC]
05300	
05400	
05500	*1 JAN 1972	Keyboard Commands	LES
05600	To get a summary of line editor  and  other  Monitor  commands,  list
05700	KEY.LES[S,DOC).
05800	
05900	*1 FEB 1972	INFO	REM
06000	
06100	To have access to the REM information system, type "RU I[S,REM]".
06200	
06300	*1 Jan 1972	FINGER	LES
06400	
06500	To get a listing of the names of all users currently  logged  in  and
06600	their locations, say "R FINGER".
06700	
06800	*29 Feb 1972	"Sticky PPN's" (RPG, COMPILE)	DCS
06900	
07000	   A PPN specification [P,PN] appearing before a file name in an
07100	RPG command string will be used for all subsequent files which
07200	do not specify a PPN explicitly.  This default remains in effect
07300	until another "sticky PPN" is specified.
07400	   As an example, if I am running under [AIL,DCS]:
07500	
07600	    COMPILE SAIL=HEAD+DB+[S,AIL]SAIL+SYM+PARSE+PROD[AIL,DCS]+EXPR
07700	
07800	would write the output on [AIL,DCS], get HEAD,DB, and PROD from
07900	[AIL,DCS], and get SAIL, SYM, PARSE, and EXPR from [S,AIL].
08000	
08100	*1 Jan 1972	SAIL Statement Counter Profile	RES
08200	
08300	To find out how to get SAIL to give you execution frequency data for
08400	pieces of your program, list NEWMAN[S,AIL].
08500	
08600	*2 Mar 1972	CREF Default Listing Device	DCS
08700	
08800	The CREF default listing device has been changed from LPT to DSK.
08900	This change is not made in RPG mode (so that the CREF system
09000	command will still go directly to LPT).
09100	
09200	*14 Mar 1972	TV "." and <esc>I Features	DCS
09300	
09400	Typing "⊗." (see TVED.DCS[UP,DOC] for notation) will cause the current
09500	page to become a permanent part of the file (like "W" in SOS).  CANCEL
09600	will henceforth bring back this version, not the old one.
09700	
09800	To interrupt a "FIND" search prematurely, type <esc>I.  This replaces
09900	the "\<crlf>" method.
10000	
10100	*23 Mar 1972	TV for III	DCS
10200	The TV editor (though still officially unsupported) will now run on
10300	both Data-Disk and III.  In fact, you can transfer (by detach/attach)
10400	from one to the other in mid-edit!
10500	
10600	*30 APR 72	SEND	RPH
10700	SEND NOW HAS THE FOLLOWING FORMATS:
10800	
10900	SEND PN		SEND TO ALL PN'S
11000	SEND *		WRITE NOTICE.TXT
11100	SEND *,PN	SAME AS SEND PN
11200	SEND P,*	SEND TO ALL P'S
11300	SEND P,PN	SEND TO SPECIFIC P,PN
11400	SEND *,*	SAME AS SEND *
11500	A PN IS SOME PROGRAMMER NAME
11600	A P IS SOME PROJECT NAME
11700	
11800	*30 APR 72	FAIL	FW
11900	The double arrow character is no longer treated specially
12000	within the comment portion of a line.  When not within a
12100	comment, it is equivalent to a carriage-return, line-feed
12200	pair.  Now, within comments, it prints as itself.
12300	
12400	*3 JUN 1972	RAID	DCS
12500	A new version of RAID is on the system.  Since it is compatible with
12600	both Data-Disc and III consoles, I have put it on SYS: as both 
12700	RAID.REL and TVRAID.REL.  Therefore /V, /1V, /H, /1H will all load
12800	the same program.  Later, TVRAID will be phased out (of LOADER, RPG)
12900	and the numeric argument to H and V switches will be ignored.
13000	This version has been tested fairly carefully.  But report any
13100	problems you have to DCS, anyway.  The old files are saved as
13200	RAID.RLO and TVRAID.RLO on [CSP,SYS].
13300	
13400	The following things have been changed:
13500	__ There are a few display changes; in particular, the arrow
13600	   conventions of the Data-Disc RAID are now used everywhere.
13700	__ Byte mode input will be displayed in byte mode.
13800	__ Conditional breakpoints now work exactly as advertised.
13900	__ Symbol←Expr, Symbol:, and Symbol<ctrl>K now work properly.
14000	__ All opcodes work on input (incl. ANDCAM, ORCAB, etc.)
14100	
14200	The following new features have been added:
14300	__ There are three new entries to the dispatch table preceding
14400	   DDT (JOBDDT → DDT) -- see RAID.ON[S,DOC] for the meaning of
14500	   this table.  The three are:
14600		DDT-12:	→$RPTCNT	See below
14700		DDT-11: →$BGDDT		First word of DDT
14800		DDT-10: →DDTEND		Last word of DDT
14900	
15000	__ This is "Version 1" of RAID.  The version is henceforth stored
15100	   in the leftmost 13 bits of JOBDDT.  Since DDT and old RAID
15200	   contain 0 here, you can tell which you have loaded.  This is for
15300	   the benefit of programs which use new features -- they can
15400	   try alternate methods if the Version isn't high enough.
15500	__ If you insert a JSR $I in your program, you will effectively
15600	   place a breakpoint at that location.  You can proceed via <ctrl>P.
15700	   DO NOT single-step or set a breakpoint on this instruction!
15800	   $I is an INTERNAL symbol in RAID.  There is a pointer to it at
15900	   DDT-6.
16000	__ When you type <call>DDT<cr>, RAID will simulate a breakpoint at
16100	   the address specified by JOBOPC.  You can proceed with <ctrl>P.
16200	   Do not expect this to work if you enter DDT before running anything,
16300	   or if your program jumps to DDT (unless it stores a reasonable
16400	   address in JOBOPC first).
16500	__ n<ctrl><meta>S, where n is a number, will execute instructions
16600	   in multi-step mode, as it would if n were absent.  However, no
16700	   change will be made in  the display until:
16800	     1) n instructions have been executed (<ctrl>X'ed subr =1 instr.)
16900	     2) RAID must pause to get instructions at a subroutine call.
17000	     3) You interrupt the stepping by typing something, or a
17100		breakpoint is encountered.
17200	   After you respond at a type (2) pause, again the display remains
17300	   unchanged until one of the conditions occurs again.  If you
17400	   responded <ctrl>S or <ctrl>X to the pause, the count will be
17500	   exhausted before the display changes again -- barring type (3)
17600	   events.  The remaining count, if any, is always available in 
17700	    $RPTCNT.   This is useful for counting exact numbers of 
17800	     executions in a given routine, etc.
17900	__ Symbol<meta>K obliterates the Symbol.  Unlike <ctrl>K, which
18000	   simply eliminates typout of the symbol, this also makes it
18100	   undefined for typein.  If, for instance, you have two locations
18200	   with the name NM1, do:
18300		NM2←NM1		Assigns a new name to one of them.
18400		NM1<meta>K	Deletes this symbol completely.
18500		NM1;		Reveals value of the other NM1.  Now
18600				NM2 refers to the first.
18700	__ Macros:
18800	   Address<ctrl>M<letter> defines <ctrl><meta><letter> as
18900	   a macro.  When the macro is invoked, Address (it can be just
19000	   an address or a byte pointer value) will be put in $M-1 (see
19100	   RAID.ON[S,DOC].  This has the effect of evaluating the string
19200	   at Address before evaluating any more keyboard input -- expanding
19300	   the macro.  Be warned that many <ctrl><meta><letter> combinations
19400	   already mean something -- use one you can do without (the macro
19500	   takes precedence).
19600	*4 JUN 1972	NEW DISPLAY EDITOR	SRS
19700	
19800	there now exists a new display editor, called ED, available for
19900	experimentation.  to run it, type
20000	 RU ED[S,SRS]
20100	when it starts up, there will be some documentation on the screen.
20200		ED is presently experimental, and improving.  Features
20300	include:  editing several files at once, splitting screen between
20400	several files or strings, faster than TV in some cases.
20500	
20600	*6 JUN 1972	PUB MANUAL	TES
20700	
20800	A new version of PUB was put up today with some obscure bugs fixed.
20900	Indexes and headings now work well.  AFTER PAGE does not always
21000	work, but AFTER TEXT is usually equivalent and does work.
21100	If you must use old version, please tell me why! To use it, log in
21200	as 12,TES and RUN PUB.
21300	
21400	There is a new manual: SPOOL PUB.TES[S,DOC]/N/B   It is 80 PAGES long, so
21500	if you don't plan to use PUB for a few months, it is advisable to
21600	wait for the SAILON to be printed.  The new manual has an index
21700	and a tutorial for beginners, plus appendices with (untested) examples.
21800	To use PUB for simple purposes, only a portion of the manual needs to be
21900	read.
22000	
22100	*MAR 1972	LOGOUT	REG
22200	Recent changes to logout command.
22300	
22400		The logout command is used to terminate a job that was created
22500	by Login, Fork, or Cfork commands.  The usual form of the command is
22600	K or KJOB, typed at monitor level, followed by a carriage return.
22700	
22800		A new command is called KAT, which combines the features of the
22900	K command and the ATtach command.  KAT requires the job number of the
23000	job to which you want to attach.  As in the Attach command, if you
23100	are attaching to a job with a different PPN than the job you are leaving,
23200	you must supply the ppn of the job to which you are attaching.
23300	
23400		Command Formats
23500		Note that curly backets { and } denote optional
23600	arguments; pointy brackets < and > denote a symbolic item which  should
23700	be replaced by some concrete instantiation of that item.
23800	
23900	K or KJOB command:
24000	
24100	K{JOB}{/<switch list>}
24200	
24300	KA{TTACH} <job number> {[<project name>,<programmer name>{]}}{/<switch list>}
24400	
24500	Each command line is terminated by a carriage return.
24600	
24700		The item <switch list> consists of any sequence of letters
24800	chosen from the list below:
24900		THIS LIST HAS BEEN OMITTED BECAUSE I FORGOT THEM ALL.
25000	
25100	For further confusion, consult R. Gorin.
25200	*1969	DDT	WFW
25300	 The following changes have been made to DDT:
25400	
25500	 l.  Halfword printout is now of the form  A,,B  instead
25600	     of  (A)B.  Either form may be used on input.  The difference
25700	     is that  A,,B  truncates  A to 18  bits before 
25800	     swapping halves while  (A)B  does not.
25900	
26000	 2.  $U is a new output mode.  It is the same as $A$H.
26100	 3.  $F mode will now print normalized floating permit
26200	     numbers as decimal integers.  This means that
26300	     FORTRAN users may, in general, use $F to look at
26400	     all variables and they will be printed correctly 
26500	     either fixed or floating.
26600	
26700	 4.  If the address of a string of ASCIZ text is placed
26800	     in $nB+3, then whenever breakpoint  n  is reached,
26900	     DDT will act as if the characters in the string were
27000	     being read from the teletype.  If you are preparing 
27100	     such a string in advance use either  $ or ≠ (≠33 octal)
27200	     for altmode.
27300	
27400	5.   If a  bytepointer to an  asciz  string is placed in
27500	     $M-l, DDT will act as if the characters in the string
27600	     are being read from the teletype.
27700	
27800	 6.  $$7" <delimiter> characters <delimiter> will act just
27900	     like an  asciz   statement in MACRO or FAIL,i.e.,
28000	     more than one word will be filled with  asciz for 
28100	     the characters if necessary.  $$" will have a similar
28200	     effect but with sixbit.
28300	
28400	 7.  Typing <number>$$P will cause DDT to do an automatic
28500	     proceed  <number>  times instead of forever.
28600	
28700	 8.  When printing in  $$  mode, no word will be printed
28800	     out as an I/O instruction (COND, DATAO, CONI, etc.)
28900	     unless the device number is in a special table.  The
29000	     table is  10  words long and is in $I-1, $I-2, etc.
29100	     Simply put device number here to have the appropriate I/O
29200	     instructions printed.
29300	
29400	 9.  If an address is placed in  $M-2  then for each character
29500	     DDT wishes to output, a pushj 1,@$M-2 will be executed. 
29600	     This allows output to be redirected to some device 
29700	     other than the TTY.  The character is in register 5.  The
29800	     routine should preserve all AC's and end with a POPJ l,.
29900	
30000	10.  In byte mode output ($<number>0), if a size of 0
30100	     is specified, DDT will use a special mark in $M+2.
30200	     The boundry between 1 and 0 bits specifies the size
30300	     of the bytes.  For example, a word containing
30400	
30500			11111111111 00000000000 11100010110001
30600	
30700	     would print 2 . 11 bit bytes, 2 3 bit bytes, 2 1 bit
30800	     bytes, a 2 bit bytes, a 3 bit byte, and a 1 bit byte.
30900	
31000	11.  Bytes may be input of $<number>%.  This should be
31100	     followed by a string of unsigned octal numbers
31200	     separated by common and terminated by an altmode.  The 
31300	     number of bytes in a word is not integal the last
31400	     byte is treated as if the word were larger 
31500	     (bit number greater than 35).  This makes input compatible
31600	     with output.  A size of  O  uses the mark in $M+2
31700	     as above.
31800	
31900	12.  It is now possible to print flag words and  T  type
32000	     instruction (TRUN, TLNN, etc.) with suitable names
32100	     for the bit involved.  In $M+3 a pointer of the following
32200	     form is placed:
32300	
32400					_______
32500					|            |
32600	    _______      	|             |
32700	$M+3 |  L1 | T0  |		| Table 0    | 
32800					|            |
32900					_______
33000		
33100					
33200					_______
33300					|            |
33400					| Table 1    |
33500					|            |
33600					_______
33700	
33800					_______
33900					|	     |                
34000					| Table 2    |
34100					|	     |                
34200					_______
34300	     As many tables as desired may be included.  The pointer
34400	     to the last table should have 0 in the left half. Each
34500	     table contains 36 words.  The  nth  word contains the
34600	     RADIX50 for the name of bit n.  $<number>J  mode will
34700	     cause a word to be printed out using the bit names in
34800	     table number.  If an entry for a bit in 0, the numeric
34900	     value will be printed.  A typical word might look like
35000	
35100	              foo! baz! 123,, fool! garp! 2
35200	
35300	     $J means $0J.  $nL causes the left half to be
35400	     printed in symbolic and the right half to be printed in
35500		↑STODAT:
35600	     bit mode, using the names of the bits as if they appeared
35700	     in the left half. $<number>V prints the left half in symbolic
35800	     and the right half in bit mode.
35900	
36000	13.  You can now transfer to what is pointed to by the left half
36100	     of a word in the same manner as you transfer using <tab>.
36200	     The command is <control>].
36300	
36400	*FEB 1972	NEW WHO	DCS
36500	As of 12-9-71:
36600	
36700	1. WHO  will  run for about two minutes, then quit.  You can  reset
36800	   this time by issuing commands (see below).
36900	
37000	2. Typing <call> does not stop spacewar jobs.  However, after about
37100	   6 seconds of operation after a <call>, the spacewar portion of
37200	   WHO will bomb out (PC EXCEEDS MEM BOUNDS AT 377777).  This will
37300	   be made cleaner if the system types give me some help.
37400	
37500	3. WHO commands are now single-character commands.  WHO will not wait
37600	   for a carriage return before executing one.
37700	
37800	4. Previously, many lines of the WHO page were lost below the bottom
37900	  of the screen.  WHO now provides a "windowing" feature.   Type  "↑"
38000	  to  move  the  text  up,  so  that the line which did appear at the
38100	  center of the screen now appears at the top.  This reveals  several
38200	  new  lines  at  the  bottom.  A digit preceding the "↑" serves as a
38300	  repeat factor.
38400	 
38500	5. The "↓" command, with optional repeat factor, moves the text down
38600	   by a half-screenful, unless the first line already is displayed.
38700	
38800	6. The "E" command causes WHO to quit.  However, the last-drawn screen
38900	   will not be cleared.  So you can look at it.
39000	
39100	7. Any other character will cause WHO to clear the screen (revealing
39200	   your old page printer), then quit.
39300	*14 June 1972	VIDEO SWITCH DOCUMENTATION	LES
39400	A  SAILON  describing  the   video   switch   hardware   resides   in
39500	VDS.LES[S,DOC].  A description of keyboard commands and monitor calls
39600	for controlling the switch and DD channel allocation are described in
39700	VIDEO.LES[UP,DOC].  To  get  a  summary of the keyboard commands, say
39800	"HELP DISPLAY" or "SPOOL KEY.LES[UP,DOC]".
39900	
40000	*7 July 1972	DOCUMENTATION FILES	LES
40100	Online documentation files are divided into several areas, as follows.
40200		[P,DOC] contains the compiled version of the lab phone
40300			directory and other lists of people.
40400		[UP,DOC] contains user program descriptions (informal).
40500		[S,DOC] contains SAILONs, which are more formal descriptions
40600			of programs and hardware.
40700		[AIM,DOC] contains A. I. Memos, which report research results.
40800		[BIB,DOC] contains bibliographies of films, theses, SAILONs, etc.
40900	
41000	*23 JULY 1972	KLOG	RHT
41100	The KLOG command allows you to switch areas in one line.  Semantically
41200	it is LOGOUT, followed by LOGIN.  The syntax is:
41300	
41400	KLOG {/<logout switch>} {ppn spec (as you would type to LOGIN)}
41500	
41600	examples 
41700	
41800	KLOG 1/RHT
41900	
42000	KL/F 1|RHT
42100	
42200	KL 
42300	1,RHT
42400	
42500	*24 Jul 1972	SAIL	DCS,RHT,JRL
42600	LEAP news
42700	
42800		1. In the past global model users of LEAP were required
42900		   to have the statement:
43000			
43100			REQUIRE -1 NEW_ITEMS;
43200			
43300		   in order to inhibit the allocation of various tables
43400		   for the local leap model. This statement is no longer
43500		   required. Instead the decision to allocate the tables
43600		   will be made using the following criteria. The local model
43700		   tables will be allocated only if any of the programs loaded
43800		   together to form a single job contain any declared local
43900		   items ( that is, any items declared without the attribute
44000		   GLOBAL), or any of the programs contain  the statement:
44100			
44200			REQUIRE n NEW_ITEMS;
44300	
44400	       	   where "n" is greater that 0.
44500		   NOTE: this means that all users of local model LEAP must now
44600		   "require" new_items if they are going to dynamically create
44700		   non-global items by using the function NEW.(previously an
44800		   implicit REQUIRE 60 NEW_ITEMS was contained in every program).
44900	
45000	
45100		2. LEAP tables are now allocated as part of the SAIL initialization
45200		   code rather than on the first call to any LEAP subroutine.
45300		   The tables will be allocated if any of the SAIL programs
45400		   loaded contain declared items, itemvars, sets, lists or calls
45500		   to LEAP. This change was made so that datums of items could
45600		   be utilized before the first call to LEAP.
45700	
45800		3. The type codes for items have been altered. The new codes
45900		   returned by the TYPEIT function are as follows:
46000	
46100				0 - item deleted or never allocated
46200				1 - no type (no datum for this item)
46300				2 - item is bracketed triple
46400				3 - string
46500				4 - real
46600				5 - integer
46700				6 - set
46800				7 - list
46900				8 - procedure
47000			       16 - string array
47100			       17 - real array
47200	                       18 - integer array
47300			       19 - set array
47400			       20 - list array
47500			       21 - invalid (runtime has screwed something up)
47600	 	   The very astute user will notice that the only changes are to
47700		   up the codes for arrays and invalid by 5.
47800	
47900		IMPORTANT NOTE:This unfortunately will necesitate the recompilation
48000		and reloading of any programs which use array items as the RUNTIME 
48100		routines also use these type codes.The standard
48200		compiler  SAIL on [1,3] will have these changes as of 23:59 WED,
48300		jul26. Therefore if any of your programs use array items you should
48400		recompile them starting Thurs jul 27. Foist all complaints onto
48500		Jim Low.
48600	
48700	
48800	*25 Jul 1972	SPOOLER	REG
48900	SPOOLER NEWS:
49000		The old spooler '*LIST*' has been removed  from  the  system.
49100	Users of the spooling subroutines described in SPSUB.REG[UP,DOC] will
49200	have to reload with the new libraray.
49300	
49400		The command SPOOLQ has been removed. Instead, use the command
49500	QSPOOL.   This  has the advantage that the command can be abbreviated
49600	to one letter and the SPOOL command to two letters.
49700	
49800		A new SPOOL command is planned. This will allow users to more
49900	fully utilize features of the new spooler.
50000	
50100	*1 Aug 1972	FORTRAN	REG
50200	DEC FORTRAN version 25 and LIB40 version 31 have been put up.
50300	Some of the bugs in the compiler / operating system have been
50400	eliminated.
50500	
50600	*9 Aug 1972	DATA DISK	FW
50700	Two new features have been added to data disk DPYOUT:
50800	
50900	1) Overlapped mode, enabled by bit 0 of header word 0.
51000	   In this mode, a DPYOUT will return without waiting for
51100	   the transfer to be completed (although it will wait
51200	   for any previou transfer), enabling the program to
51300	   continue running. Header+2 will be set nonzero during
51400	   the transfer, and to zero after the transfer is complete,
51500	   so testing this is convenient (which should be done before
51600	   changing the buffer). A DPYOUT with a zero word count will
51700	   wait for a previous transfer without initiating a new one.
51800	
51900	2) Double field mode, useful for text output. This is enabled
52000	   by bit 1 of header word 0 and will cause the buffer to be
52100	   transferred twice, once on each field. Header+3 should specify
52200	   the address of the line address command word, which should
52300	   contain the low-order line address as the third command in
52400	   the word. Bit 24 of this word will be set to the proper
52500	   field on each transfer. This feature cannot be used if more
52600	   than one low-order line address command is used.
52700	
52800	*16 Aug 1972	AP NEWS (APE, HOT)	ME
52900	
53000	We have a line from the Associated  Press  (AP)  over  which  we  get
53100	national  and  international news.  The news that comes in gets filed
53200	on the disk and saved for about 24 hours.
53300	
53400	For use in reading the news, there are two programs on the system.
53500	
53600	Type "R HOT" to have the news typed on your console as it comes in.
53700	
53800	Type "R APE" to be able to selectively read the news that is on file.
53900	The  stories  are catagorized by keywords; to read the news, you type
54000	to APE whatever keywords you want to read about.  To  get  help  when
54100	you are running APE, type "?" and carriage return at any point. For a
54200	list of the keywords, TYPE the file WORDS.SRT[AP,SYS]  or  SPOOL  the
54300	file WORDS.LST[AP,SYS].
54400	
54500	For further information, see the file APE.ME[UP,DOC].
54600	
54700	
54800	*16 AUG 1972	SAIL MATRIX ROUTINES PACKAGE	SHK
54900	
55000	Following Matrix Routines Now Available:
55100	
55200	1) Real Matrix Multiplication Routine
55300		Multiplies two n-dimensional matrices (2-dimensional arrays)
55400		(size  m x n by n x p  to get a  m x p  matrix)
55500		or multiplies a 1-dimensional matrix by an n-dimensional matrix
55600		or an n-dimensional matrix by a 1-dimensional.
55700	MATMUL(REAL ARRAY A[a:b,c:d],REAL ARRAY B[c:d,e:f],REAL ARRAY C[a:b,e:f]);
55800		multiplies A by B and places the result in C
55900		(MATMUL(A,B,A) and MATMUL(A,B,B) are also valid.)
56000		The only thing it won't do (I think) is multiply two 1-dimensional
56100		matrices or n-dimensional arrays (n>2).
56200	
56300	2) Array Clear Routine
56400		MATCLR(REAL (or INTEGER) ARRAY A);
56500		Zeros the array A.
56600	
56700	3) Real Array Multiplied by a Real Constant
56800		CONMUL(REAL ARRAY A,REAL B);
56900		Multiplies array A by constant B and places the result in A.
57000	
57100	All three are available by saying REQUIRE "MATMUL[4,SHK]" LOAD_MODULE;
57200	
57300	
57400	*30 Aug 1972	UUO	SHK
57500	There is now a numerical listing of the UUO's - UUO.SHK[S,DOC]
57600	
57700	*4 Sept 1972	AP NEWS (APE, HOT)	ME
57800	 The AP news is now spooled once a day (at a somewhat random
57900	 time).  The listing, which will be kept in the conference
58000	 room, will indicate a file name of "APNEWS[AP,SYS]".
58100	
58200	*4 SEP 1972  FILDMP	RPH
58300	New program to list files in different formats. See FILDMP.RPH on UP,DOC.
58400	
58500	*4 SEP 1972  NEW SAIL	RHT
58600	 EFFECTIVE 1201 AM SAT, 26 AUG, A NEW SAIL SYSTEM  WILL  BE  UP.  ITS
58700	 SEGMENT  WILL  BE  SAISG4.  THIS NEW SYSTEM WILL INCLUDE SEVERAL NEW
58800	 FEATURES, INCLUDING USER REQUESTED  INITIALIZATIONS,  A  LOCATION(X)
58900	 FUNCTION,  AN  IMPLICIT  ARRAY:  MEMORY[0:MEMSIZE], THE RUDIMENTS OF
59000	 MULTIPLE PROCESSES, AND  MUCH  MORE.   WE  WILL  TRY  TO  HAVE  SOME
59100	 DOCUMENTATION READY BY THE LATTER PART OF THE WEEK.
59200	*22 SEP 1972	NEW SAIL	RHT,JRL,KVL
59300	 THE NEW SAIL SYSTEM IS UP. THERE ARE MANY NEW FEATURES INCLUDING
59400	 MULTIPLE-PROCESSES WITHIN JOBS,EVENTS, A LIMITED FORM OF BACKTRACKING
59500	 BETTER FOREACH STATEMENTS, BETTER ERROR RECOVERY ETC.
59600	
59700	 THE DOCUMENTATION FOR THE NEW FEATURES IS NOT YET AVAILABLE, BUT
59800	 EXAMPLES OF THE GLORY OF NEW SAIL ARE CONTAINED IN PAPER.DOC[S,JRL]
59900	 NEWFEA.TXT[S,JRL].
60000	
60100	 THE NEW SYSTEM USES SAISG4, LIBSA4, HLBSA4, AND FOR YOU GLOBAL
60200	 MODEL HACKERS GLBS10. 
60300	
60400	 NO SOURCE LANGUAGE INCOMPATIBILITIES ARE KNOWN, BUT OF COURSE
60500	 ALL PROGRAMS LOADED TOGETHER SHOULD BE COMPILED WITH THE
60600	 NEW COMPILER, AND OLD PROGRAMS SHOULD BE RECOMPILED BEFORE THEYY
60700	 ARE RELOADED.
60800	
60900	
61000	 OLD DUMP FILES SHOULD CONTINUE TO RUN FOR A WHILE UNTIL
61100	 SAISG3 IS DELETED.
61200	
61300	 SEND COMPLAINTS AND BUGS TO S,AIL OR SEE JRL,KVL OR RHT
61400	 A CURRENT LISTING WILL BE APPRECIATED. BETTER SERVICE
61500	 WILL BE GIVEN IF YOU ARE ABLE TO TICKLE THE BUG IN A SMALL
61600	 PROGRAM WITHOUT UNREADABLE MACROS.
61700	
61800	 FOR THE NEXT COUPLE DAYS WE WILL KEEP THE PREVIOUS COMPILER
61900	 AROUND AS SAIL.921[1,3], SAILOW.REL AS SAILOW.921, AND
62000	 GLBLOW.REL AS GLBLOW.921.  IF YOU FEEL YOU ARE BEING
62100	 SCREWED BY SOME TERRIBLE BUG, YOU CAN, FOR INSTANCE,
62200	 SAY SOMETHING LIKE
62300	 
62400	 R SAIL.921 <CR>
62500	 * FOO←FOO <CR>
62600	 * LOADER!
62700	 * SAILOW.921[1,3],FOO <ALT>
62800	 
62900	 WHERE THE STARS ARE TYPED BY THE SYSTEM
63000	 
63100	 THIS WILL GIVE YOU THE EFFECT OF DOING 
63200	 
63300	 LOA /COM FOO
63400	 
63500	 USING THE PREVIOUS SYSTEM.  
63600	
63700	*22 Sept 1972	Upper Segment RAID and DDT	TVR
63800	RAID or DDT may be retrieved from the disk  and  run  from  an  upper
63900	segment.  This means your core image may contain RAID at a much lower
64000	cost (102 octal words instead of 12200 words for RAID).  For  details
64100	see DEBUG.DOC[1,TVR]
64200	
64300	*22 Sept 1972	AP NEWS (APE)	ME
64400	Multiple word keywords are now implemented in APE.  To use them,
64500	separate the individual words with spaces in your keyword exressions.
64600	
64700	Also, to have only the first few lines of each story you select
64800	typed out, type an "F" at the beginning of the story selection
64900	line ("Read which one(s)?").  If you use both "F" and "=" on
65000	the same line, the order is irrelevant.  When you use the "F"
65100	feature, you cannot spool or save the stories in a file.
65200	
65300	For details on using APE, see the file APE.ME[UP,DOC].
65400	
65500	*12 Oct 1972	FAIL	TVR
65600	FAIL has been changed to stop at each error and give  the  option  to
65700	continue  to next error, continue automatically or to edit.  The edit

65800	option will call SOS if there are line numbers and TVED if not.   Any
65900	complaints  should be sent to TVR.  If you don't want to stop at each
66000	error, give FAIL the switch (F).  The old version is FAIL.OLD[1,3].
66100	*21 Oct 1972	SAIL	JRL,RHT,KVL
66200	A new SAIL compiler has been put up to correct bugs reported in the
66300	last few weeks. There should be no incompatibitlies with the preceding
66400	compiler and programs compiled with the previous compiler should
66500	be runable with programs compiled with the new compiler. Thus, there
66600	is no need to recompile or even reload SAIL programs which have
66700	been compiled since SEPT 21.  If you do have a program which
66800	compiled in the last month but doesn't now:
66900		1. REPORT THE PROBLEM TO A SAIL HACKER - or send
67000		   a message to AIL, including such details as
67100		   where a copy of the offending program is and the
67200		   nature of the SAIL bug.
67300	        2. You may use the previous compiler by
67400		   R  SAIL.102
67500	           * FOO←FOO
67600	           * <call>
67700	           where  FOO is the name of your sail program and  <call>
67800		   represents the typing of the CALL button (the stars are
67900		   typed by the system). The above sequence is equivalent to
68000		   the system level command:
68100	
68200			COM /COM FOO
68300	
68400	A note to users of multiple processes and matching procedures:
68500		To initialize the multiple process environment the user
68600	        should include the following declaration:
68700	
68800		   EXTERNAL PROCEDURE MAINPR;
68900	
69000		He should also make sure this procedure is called before
69100	        doing any process sprouting or matching procedure calling.
69200		This is best done by using the REQUIRE INITIALIZATION feature
69300	        or by making:
69400		   MAINPR;
69500	        The first executable statement of your program.
69600	This initialization will be compiled in, in the near future but until
69700	then the above hack is required.
69800	*3 Nov 1972	USER INTERRUPTS	FW
69900	The PC stored on a memory protect interrupt via the new-style
70000	user interrupt system is now the exact PC stored by the hardware,
70100	rather than being incremented as it used to be. This is consistent
70200	both with the old-style (DEC) user interrupt system and with the
70300	"ILL MEM REF AT USER xxxxxx" typeout. If you really care about
70400	the exact value of this PC, consult me or the PDP-10 flowcharts,
70500	as it is anything but consistent.
70600	*3 Nov 1972	VIDEO SWITCH	FW
70700	The VDSMAP UUO now allows the 6 extra switch channels to be
70800	addressed by setting bit 9 in the AC and putting the channel number
70900	(0-5) in the TTY# field (11-17).
71000	
71100	*8 Nov 1972	DUMPS	REG
71200	DART, a new program to back up disk  files  on  tapes,  is  available.
71300	system commands DUMP, RESTORE, TLIST, REWIND, BACKSPACE, ADvANCE all
71400	run DART now, instead of DAEMON (CAUTION: new syntax in some cases).
71500	See DART.REG[UP,DOC].
71600	
71700	*8 Nov 1972	PROTECTION	REG
71800	The  file  access  protection  bit  400,  which   formerly   had   no
71900	signifigance,  now  means  'Dump  Never' in DART.  All files that had
72000	used this bit have been renamed without it.
72100	
72200	*11 Nov 1972	SYSTEM	REG
72300	The job table JOBQUE in the system now contains either the positive 
72400	or negative value of the queue code of a job. Formerly, it had
72500	always been negative.
72600	
72700	*26 Nov 1972	FTP	DCS
72800	A new FTP has been installed with the following features:
72900	
73000	 1) You needn't type the MODE, TYPE, or BYTE commands at all
73100	    unless you want to change the defaults of S, I, and 36 resp.
73200	    Changing them is inadvisable since we only support those
73300	    settings.  The defaults will be to the foreign host just
73400	    before the first data transfer.
73500	
73600	 2) RSTR clears any DATA connections that the FTP thinks it has
73700	    open.  Sometimes it's wrong.  If you get an indication from
73800	    FTP that a command is illegal because the DATA connection already
73900	    exists, do this command.  It will go away when hacks in FTP
74000	    have been cured.
74100	
74200	 3) QUOT sends the rest of the line directly over the net, so you
74300	    can use it to execute other peoples commands which are either
74400	    nonstandard or just unsupported here.  This won't do any good
74500	    if our end has to be involved in the operation, but it is good
74600	    to do things like STAT (status), and HELP at CMU.
74700	 See FTP.DCS[UP,DOC] for "complete" information about our FTP,
74800	 and NIC document 10596 for complete FTP protocol description.
74900	
75000	*26 Nov 1972	MLISP2	DAV
75100	A new version of MLISP2 has been put on the system.  An old version
75200	exists and will be around for one week.  The main motivation for
75300	the changes was to fix several serious bugs,
75400	and to clean the language up prior to publishing a manual.
75500	Changes:
75600		(1) Variable names can no longer be literals (e.g. IF, FOR, ...).
75700		(2) <IDEXP>, <ADDEDEXPR> have been subsumed by <EXPRESSION>.
75800		(3) SPECIAL variables now must be declared at translation (PARSE)
75900			time.  To facilitate this, a new production has been added,
76000			having the form:	SPECIAL <identifier_list>
76100			It is strongly suggested that all SPECIAL variables be
76200			declared at the top of the program using this production.
76300		(4) ?# in the syntax (to inhibit scanning) should now be just #.
76400			It no longer takes up a syntax position.
76500		(5) Setting variables in backtracking contexts is now done with
76600			real LISP numbers (formerly machine representation).
76700			A function CONTEXT() gets the current backtracking
76800			context.  X{CONTEXT()/10 + 3} ← etc. is now legal.
76900		(6) THE FOLLOWING CHANGE IS TEMPORARY; WILL BE FIXED IN A DAY OR 2:
77000		(*) Prefixes are more restricted in use; the syntax is
77100			<PREFIX>  <SIMPEX>  as always, but IF, FOR, CASE, etc.
77200			are no longer <SIMPEX>'s but are now full <EXPRESSION>'s.
77300			Thus RETURN IF ..., PRINT CASE ..., etc. no longer work;
77400			use  RETURN(IF ..., PRINT(CASE ..., etc.
77500		(7) The syntax of SELECT has been changed.  Use SUCCESSOR instead
77600			of NEXT, and FINALLY instead of IN WHICH CASE.
77700			E.g. SELECT CAR(L) FROM L:'(A B C) SUCCESSOR CDR(L)
77800				UNLESS NULL(L) FINALLY FAILURE()
77900		(8) MLISP2.PRI now prints as it goes along, instead of at the end.
78000	
78100	*3 Dec 1972	SAIL	RHT
78200	A new SAIL system will be put up at 2359 Thursday, 7 Dec 1972
78300	This system will include 
78400		(1) Leap revisions by JRL.  This means that any programs
78500			that use LEAP should be recompiled.
78600		(2) User required initializations will take place as
78700			the first executable statement of the main
78800			program (after outer block arrays have been
78900			initialized). Programs that are loaded
79000			with any .REL files which have user initializations
79100			should have their main programs recompiled.
79200		(3) Hooks into the user interrupt system have been provided.
79300			Those interested should see Russ Taylor.
79400		(4) A new kind of declaration has been provided:
79500			CLEANUP proc1,proc2,proc3;
79600		    Where proc1, etc. are names of (parameterless)
79700		    procedures.  The effect of a CLEANUP declaration 
79800		    is to cause the named procedures to be called
79900		    whenever the block in which it occurs is exited,
80000		    whether by falling through the end, doing a go_to,
80100		    or by any other means.  These procedures will be
80200		    called before any local arrays, sets, or lists are
80300		    released.  The calls will take place in the order
80400	 	    specified.  Thus:
80500	
80600			BEGIN
80700			INTEGER I;
80800			PROCEDURE FOO;I←1;
80900			BEGIN
81000			INTEGER ARRAY X[0:I];
81100			PROCEDURE BAZ;OUTSTR(CVS(X[I]);
81200			CLEANUP FOO,BAZ;
81300			:
81400			COMMENT NOW WHEN THIS BLOCK IS EXITED, X[1] WILL
81500				BE PRINTED OUT;
81600	
81700			:
81800			END;
81900			END;
82000	
82100		(5) various minor modifications to the process stuff.
82200	
82300	The new segment is SAISG5.SEG, the libraries are LIBSA5.REL
82400	& HLBSA5.REL.  
82500	
82600	The old compiler will be SAIL.D07[1,3]
82700	
82800	*12 Dec 72	AP NEWS (APE)	ME
82900	There is now a full search feature in APE.  If you  type  in  a  word
83000	that  is  not in the keyword dictionary, APE will tell you so and ask
83100	you if you wish a "Full search?".  If you type Y, the news file  will
83200	be  searched  for the specified keyword.  If you type ?, a (complete)
83300	summary of this feature will be typed out (try  it!).   If  you  type
83400	anything else, no search will be done.  You may interrupt a search in
83500	progress by typing any character.  (That means you may not type ahead
83600	during a search.)
83700	
83800	Note:   Every  word not in the dictionary causes a separate search to
83900	take place and will require you to say Y to "Full search?".
84000	
84100	Special note:  Normally the whole news file is searched, taking 8  to
84200	10   seconds,  but  if  a  non-keyword  is  the  second  part  of  an
84300	intersection (eg, NIXON * JJ), then only the  necessary  stories  are
84400	searched.
84500	
84600	*12 DEC 72	PUB	TES
84700	PUBMAC.DFS[1,3] has been edited to correct an error in INDEX creation.
84800	The old version is PUBMAC.OLD[1,3] for a few weeks.
84900	
85000	The PUB manual has been deleted from the disk.  The abstract remains
85100	on PUB.TES[S,DOC].  Bound copies are in the SAILON file drawer.
85200	
85300	In January, a new-SAIL PUB should be up with several obscure but
85400	annoying bugs removed.  Major restrictions and bugs now known:
85500		SEND INDEX ⊂ ... ⊃	must be all on one line
85600		See {PAGE X}		must be followed by a non-word-break
85700						such as  ) , ; ] .
85800						but definitely not a SPACE
85900		NARROW, WIDEN, VARIABLE only work within a block -- not at top-level.
86000		TURN OFF "}" inside blocks doesn't always work right (just for "}")
86100		↓_abc_abc_abc_↓ seems not to work right in FILL mode someplaces.
86200		Footnotes hack a lot, esp. if the page fills up during one.
86300